Relational database systems have been developed to organize and store the data in a logical (structured) manner. An OLAP (Online Analytical Processing) database is a relational database system capable of handling queries more complex than those handled by standard relational databases. An OLAP database typically provides multidimensional access to data—i.e., views to data by several different criteria or “dimensions”. An OLAP database typically considers each data attribute (such as product, sales region, and time period) as a separate dimension. An OLAP database manager can compute the intersection of a plurality of dimensions (such as all products sold in a given region during a given time period within a certain range of retail prices) and display the intersection. OLAP databases typically allow users to query complex data interrelationships, and discover previously unknown patterns and relationships between data.
Queries on an OLAP database are typically performed using a cube structure (referred to herein as “cube”). An OLAP cube consists of numeric facts called measures which are categorized by dimensions (such as a location dimension Country/Region/City, or a time dimension Hour/Minute/Second). Dimensions may be used to organize types of data into hierarchies with levels of detail, while measures may be used to measure quantities. To speed up analytical operations (such as drill-down, roll-up, and slice-and-dice operations) on an OLAP cube, a database management system developer (or database administrator) generally models a number of (static) cubes and loads data into the cubes. Static OLAP cubes, however, are inherently rigid which can limit their usefulness in many contexts.
Data that is not organized in a relational or even a structured manner, however, cannot generally be accessed using conventional OLAP database applications. Instead, faceted searches using a faceted search engine can be used to search both structured and unstructured data. Faceted searches are generally performed on a search index with taxonomies that reflect the categories associated with the data. A taxonomy in this context is a categorization scheme for data where the facets and facet elements which are derived from the taxonomy guide the search, and a posting list of records is associated with each facet element. The resulting documents for a particular search are organized in a facet tree including one or more facets. A facet is a node in the facet tree, and a facet may have any number of facet elements (or child facets). The total number of records in a facet is the sum total of all records in the posting lists of the facet elements beneath the facet in the facet tree. Selection of a facet (a range, word, or phrase) causes the faceted search engine to present the next set of facets, and so on along the facet tree until a final facet, the lowest-level categorization for a facet, is reached. When the user selects one of the facet nodes, the documents on the associated posting list for the facet node are displayed. Unlike queries on an OLAP database, faceted searches are typically on independent dimensions and do not support typical OLAP tasks, like slice-and-dice operations.